基于FPGA的YOLOv2 您所在的位置:网站首页 yolov2 tiny网络结构 基于FPGA的YOLOv2

基于FPGA的YOLOv2

2024-05-31 15:26| 来源: 网络整理| 查看: 265

1.一种基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法,其特在于,包括以下步骤:步骤1:网络量化:对原始网络的权重与中间结果进行定点数量化;步骤2:基于YOLOv2-tiny的目标检测系统的整体硬件架构设计;步骤3:卷积层处理单元设计:采用填充跳过技术设计可以参数化的卷积处理单元,从而支持细粒度流水线架构;步骤4:双乘法器设计:在一个DSP中同时计算相同输入与两个不同权重的乘法计算;步骤5:空间探索设计:分配各层卷积计算所需的硬件资源,平衡各级流水线。2.根据权利要求1所述的一种基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法,其特征在于,所述步骤1中网络量化,具体步骤如下:步骤1-1:确定YOLOv2-tiny中每一层权重的取值范围;步骤1-2:随机取n批输入图像使用YOLOv2-tiny进行推理,统计各个卷积层的输入与输出结果,得到在n批输入图像推理时的最大取值范围;步骤1-3:通过步骤1-1中得到的权重范围与步骤1-2中得到的卷积层输入输出范围,得出每一层的权重与各个卷积层输入输出结果的小数点位置;步骤1-4:使用步骤1-3中得到的小数点位置对YOLOv2-tiny进行重训练,得到量化后的网络权重。3.根据权利要求1所述的一种基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法,其特征在于,所述步骤2中整体硬件架构设计步骤为:步骤2-1:设计主机端与FPGA的权重数据通路,利用PCIe总线将YOLOv2-tiny的权重从主机端预加载到DRAM中;步骤2-2:设计主机端与FPGA的输入数据通路,输入图像通过PCIe总线按列加载到输入缓存中;步骤2-3:设计计算模块,输入缓存中的数据以细粒度流水线的方式由卷积层处理单元进行逐层处理,每一层的卷积层处理单元从该层的列缓存中获取输入数据,从权重缓存中获取权重数据,计算完成后,将输出结果存放在下一层的列缓存中;步骤2-4:设计主机端与FPGA的输出数据通路,利用PCIe总线将最后一层的检测结果发送到主机端进行后处理,输出最终的检测结果。4.根据权利要求3中所述的一种基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法,其特征在于,所述步骤3中卷积层处理单元计算顺序为:步骤3-1:将输入特征图Hi×Wi×Ci与卷积核Kw×Kh×Ci×Co做卷积计算,其中,Hi为输入特征图高度,Wi为输入特征图宽度,Ci为输入特征图通道数,在每一个周期中,卷积层处理单元从列缓存中取出C个输入,从权重缓存中取出K个权重,计算得到K个中间结果;步骤3-2:将步骤3-1循环执行Hi×Wi×Ci/C次,得到输出特征图上K个最终的计算结果;步骤3-3:在输入特征图上沿高度方向向下滑动卷积窗口,执行步骤3-2,经过Hi×Wi×Ci/C个周期后,计算得到新的K个输出结果,此时乒乓缓存中的权重若无法继续使用,则需要进行权重更新,使用新的K组卷积核中权重进行计算,否则,继续复用乒乓缓存中当前的权重;步骤3-4:当所有的卷积核计算完毕,在输入特征图上沿宽度方向向右滑动卷积窗口,执行步骤3-3,经过Hi×Wi×Ci/C×Ho×Co/K个周期后,计算得到输出特征图中一列新的结果,整个Ho×Wo×Co大小的输出特征图中结果全部计算完成,总共经过Hi×Wi×Ci/C×Ho×Wo×Co/K个周期。5.根据权利要求4中所述的一种基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法,其特征在于,所述步骤4中双乘法器设计步骤为:步骤4-1:将n位输入数据A、B组合成一个3n+1位的数据作为整体输入到双乘法器中,其中,高位的n位数据为A,低位的n位数据为B,中间填充n+1位的0;步骤4-2:利用数据选择器,根据输入数据A、B和权重数据C中B、C是否具有符号位,生成对应的中间结果 以及 即其中cn-1为C的第n-1位,bn-1为B的第n-1位, 为B的n-1位无符号表示, 为C的n-1位无符号表示;再利用加法器计算出 与 之和;步骤4-3:将步骤4-2中的计算结果,利用补码器通过移位操作生成补码,得到输出中高位的2n位结果的计算误差ΔH,以及低位的2n位结果的计算误差ΔL,即步骤4-4:对于双乘法器高位的2n位结果,将n位有符号数输入A、C,在DSP中视为有符号数A和无符号数 相乘;对于双乘法器低位的2n位结果,将n位有符号数输入B、C,在DSP中视为无符号数 和无符号数 相乘;按此方法,将步骤4-1中得到的整体输入数据与权重数据C利用DSP进行相乘,得到相应的输出结果;步骤4-5:利用步骤4-3中得到的输出结果中高位的2n位结果的计算误差ΔH,以及低位的2n位结果的计算误差ΔL,修正步骤4-4中得到的输出结果,得到最终的计算结果,即6.根据权利要求5中所述的一种基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法,其特征在于,所述步骤5中设计空间探索设计步骤为:步骤5-1:根据每一层的计算量分配DSP资源;步骤5-2:根据步骤5-1得到的每一层DSP数量,以及各个层卷积核大小和数据位宽,计算每一层的并行度因子Ki与Ci;步骤5-3:计算每一层所需的BRAM数量以及带宽;步骤5-4:若执行步骤5-3后,所有可使用的BRAM均分配完,但仍无法满足带宽约束,则返回步骤5-1减少可使用的DSP总量。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有